package com.star.system.struct;

import com.star.system.dto.MenuSaveDTO;
import com.star.system.dto.MenuUpdateDTO;
import com.star.system.entity.Menu;
import com.star.system.vo.Meta;
import com.star.system.vo.MenuTreeVO;
import com.star.system.vo.MenuUserTreeVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * @author yangzj
 */
@Mapper
public interface MenuStruct {
    MenuStruct INSTANCE = Mappers.getMapper(MenuStruct.class);

    /**
     * to Menu
     *
     * @param dto dto
     * @return {@link Menu}
     */
    Menu to(MenuSaveDTO dto);

    /**
     * to Menu
     *
     * @param dto dto
     * @return {@link Menu}
     */
    Menu to(MenuUpdateDTO dto);

    /**
     * to MenuUserTreeVO
     *
     * @param vo vo
     * @return {@link MenuUserTreeVO}
     */
    MenuUserTreeVO to(MenuTreeVO vo);

    /**
     * to Meta
     *
     * @param vo vo
     * @return {@link Meta}
     */
    Meta toMeta(MenuTreeVO vo);
}
